<?php
$loginPage = true;
include('includes/config.php');

$action = preg_replace('/[^a-z]/', '', $_GET['do']);

if ( $action == 'logout' || $_SESSION['loggedInTheSystem'] ) {
      unset($_SESSION);
      session_destroy();
      
      /* Да направим  проверка дали урл-то към което идва е било на нашия сървър и ако е вярно, да го сложим в $_GET, за да го върнем там след успешен вход
       * Трябва да се махне http://, че се объркват нещата. Т.е. при https става още по-сложно : )
       * Не е най-добрия вариант, но ... */
      if ( stripos($_SERVER[HTTP_REFERER], $_SERVER[HTTP_HOST]) !== false && stripos($_SERVER[HTTP_REFERER], 'index.php') === false ) {
            header('Location: index.php?do=login&message=12&cameFrom=' . urlencode(str_replace('http://', '', $_SERVER[HTTP_REFERER])));
      }
      else {
            header('Location: index.php?do=login&message=12');
      }
}
elseif ( $action == 'register' ) {
      if ( $_POST ) {
            /* Разрешени символи ^a-zA-Zа-яА-Я0-9-. */
            $username = preg_replace('/[^a-zA-Zа-яА-Я0-9-.]/iu', '', trim($_POST['user']));
            $password = str_replace('|', '', filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING));
            $error = false;

            if ( $_POST['pass'] != $_POST['pass2'] ) {
                  $errorMessages[] = 5;
                  $error = true;
            }

            if ( $username != $_POST['user'] ) {
                  //Неразрешени символи
                  $errorMessages[] = 6;
                  $error = true;
            }
            if ( !$username ) {
                  $errorMessages[] = 1;
                  $error = true;
            }
            else if ( mb_strlen($username) <= 5 || mb_strlen($username) > 80 ) {
                  //Минимум за потребителско име
                  $errorMessages[] = 8;
                  $error = true;
            }
            if ( !$password ) {
                  $errorMessages[] = 3;
                  $error = true;
            }
            elseif ( mb_strlen($password) <= 5 || mb_strlen($password) > 80 ) {
                  $errorMessages[] = 9;
                  $error = true;
            }
            if ( !$error && usernameExists($username, $link) ) {
                  $errorMessages[] = 10;
                  $error = true;
            }


            if ( !$error ) {
                  if ( !registerNewUser($username, $password, $link) ) {
                        $errorMessages[] = 11;
                  }
            }
      }
}
else {
      if ( $_POST ) {
            /* Разрешени символи <small><i>Разрешени символи a-z 0-9 -(тире) .(точка)</i></small> */
            $username = strtolower(preg_replace('/[^a-zA-Z0-9-.]/i', '', trim($_POST['user'])));
            $password = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
            $error = false;
            if ( !$username ) {
                  $errorMessages[] = 1;
                  $error = true;
            }
            if ( $username != $_POST['user'] ) {
                  $errorMessages[] = 2;
                  $error = true;
            }
            if ( !$password ) {
                  $errorMessages[] = 3;
                  $error = true;
            }

            if ( !$error ) {
                  if ( checkLogin($username, $password, $link) ) {
                        /* Успешен вход !!! 
                         * Слагам идиотското loggedInTheSystem защото като се тества на локална машина, може да се препокрият : )
                         */
                        $_SESSION['loggedInTheSystem'] = true;
                        if ( $_GET['cameFrom'] ) {
                              $decodedURL = urldecode($_GET['cameFrom']);

                              /* Да направим отново проверка дали урл-то към което ще пращаме не е за изход и си е на нашия хост 
                               * Не е най-добрия вариант, но ... */

                              if ( stripos($decodedURL, $_SERVER[HTTP_HOST]) !== false && stripos($decodedURL, 'index.php') === false ) {
                                    $redirectToUrl = 'http://' . $decodedURL;
                              }
                        }
                        if ( $redirectToUrl ) {
                              header("Location: $redirectToUrl");
                              exit;
                        }
                        else {
                              header("Location: msglist.php");
                              exit;
                        }
                  }
                  else {
                        $errorMessages[] = 4;
                  }
            }
      }
}

$loginForm = '
            <h3>Вход в системата</h3>
            <br />
            <form action="index.php?do=login" method="POST" id="loginForm">
            <table class="noBorders">
                  <tr>
                        <td>
                              <label for="user">Потребителско име : <br /><small><i>Разрешени символи a-z 0-9 -(тире) .(точка)</i></small></label>
                              <input type="text" id="user"name="user" value="' . $_POST["user"] . '" />
                        </td>
                  </tr>
                  <tr>
                        <td>
                              <label for="pass">Парола :  </label>
                              <input type="password" name="pass" id="pass"/>
                        </td>
                  </tr>
                  <tr>
                        <td><input type="submit" value="Вход в системата" /></td>
                  </tr>
                  <tr>
                        <td><br /><a href="javascript:void(0)" id="fastLogin">Бърз вход с ' . $defaultUser . ' / ' . $defaultPass . '</a></td>
                  </tr>
            </table>
      </form>';

$registerForm = '
            <h3>Нова регистрация</h3>
            <br />
            <form action="index.php?do=register" method="POST" >
            <table class="noBorders">
                  <tr>
                        <td>
                              <label for="user_reg">Потребителско име : <br /><small><i>Разрешени символи a-z 0-9 -(тире) .(точка) Между 5 и 80 символа</i></small></label>
                              <input type="text" id="user_reg" name="user" value="' . $_POST["user"] . '" />
                        </td>
                  </tr>
                  <tr>
                        <td>
                              <label for="pass_reg">Парола :  </label>
                              <input type="password" name="pass" id="pass_reg"/>
                        </td>
                  </tr>
                  <tr>
                        <td>
                              <label for="pass2_reg">Повтори Паролата :  </label>
                              <input type="password" name="pass2" id="pass2_reg"/>
                        </td>
                  </tr>
                  <tr>
                        <td><input type="submit" value="Регистрирай ме !" /></td>
                  </tr>
            </table>
      </form>';

$pageTitle = 'Вход в системата';

include 'includes/header.php';
?>                   
<div class="menu">
      <a href="index.php?do=login" class="current">Вход / Регистрация</a> 
</div>
      <?php
      include 'includes/messages.php';
      ?>
<div id="container">
      <div class="leftPart"><?php echo $loginForm; ?></div>
      <div class="rightPart"><?php echo $registerForm; ?></div>

<?php
include 'includes/footer.php';